package com.labot.dao;

import java.util.List;

import com.labot.model.Config;
import com.labot.types.ConstantsGrupsType;
import com.labot.types.ConstantsType;

/**
 * @author Ing. Enrique Barbeito
 */
public interface ConfigDao extends GenericDao<Config, Long> {

    
    /**
     * Get all Config listings
     * @return
     */
    public List<Config> getConfigs(ConstantsGrupsType type);

    /**
     * Get all Configs
     * @param type
     * @return
     */
    public List<Config> getAllConfigs();

    /**
     * The Saver
     * 
     * @param config
     * @return
     */
    public Config saveConfig(Config config);

    /**
     * Get one constant from config.
     * 
     * @param constant
     * @return
     */
    public Config getConfig(ConstantsType constant);
    
    /**
     * Execute absolute HQL
     * @param hql
     */
    public void excuteBatch(String hql);
}
